/*
 * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */

package java.lang.ref;


/**
 * 弱引用对象，不会阻止其引用对象被终结、终结化，然后被回收。
 * 弱引用最常用于实现规范化映射。
 *
 * <p> 假设垃圾收集器在某个时间点确定一个对象是
 * <a href="package-summary.html#reachability">弱可达的</a>。
 * 此时它将原子地清除对该对象的所有弱引用，以及对通过强引用和软引用链
 * 从该对象可达的任何其他弱可达对象的所有弱引用。
 * 同时它将声明所有以前弱可达的对象为可终结的。
 * 同时或稍后，它将把那些已注册到引用队列的新清除的弱引用加入队列。
 *
 * @author   Mark Reinhold
 * @since    1.2
 */

public class WeakReference<T> extends Reference<T> {

    /**
     * 创建一个引用给定对象的新弱引用。新引用未注册到任何队列。
     *
     * @param referent 新弱引用将引用的对象
     */
    public WeakReference(T referent) {
        super(referent);
    }

    /**
     * 创建一个引用给定对象并注册到给定队列的新弱引用。
     *
     * @param referent 新弱引用将引用的对象
     * @param q 引用要注册到的队列，如果不需要注册则为<tt>null</tt>
     */
    public WeakReference(T referent, ReferenceQueue<? super T> q) {
        super(referent, q);
    }

}
